package com.dt.platform.domain.oa.meta;

import com.github.foxnic.api.bean.BeanProperty;
import com.dt.platform.domain.oa.FinAccountingRecord;
import java.math.BigDecimal;
import java.util.Date;
import org.github.foxnic.web.domain.hrm.Employee;
import org.github.foxnic.web.domain.system.DictItem;
import javax.persistence.Transient;



/**
 * @author 金杰 , maillank@qq.com
 * @since 2025-06-08 12:40:51
 * @sign B30C3FA66FF27DAF558362BAF2E6855D
 * 此文件由工具自动生成，请勿修改。若表结构或配置发生变动，请使用工具重新生成。
*/

public class FinAccountingRecordMeta {
	
	/**
	 * 账目分类 , 类型: java.lang.String
	 */
	public static final String ACCOUNTING_CATEGORY="accountingCategory";
	
	/**
	 * 账目分类 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> ACCOUNTING_CATEGORY_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,ACCOUNTING_CATEGORY, java.lang.String.class, "账目分类", "账目分类", java.lang.String.class, null);
	
	/**
	 * 收支金额 , 类型: java.math.BigDecimal
	 */
	public static final String AMOUNT="amount";
	
	/**
	 * 收支金额 , 类型: java.math.BigDecimal
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.math.BigDecimal> AMOUNT_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,AMOUNT, java.math.BigDecimal.class, "收支金额", "收支金额", java.math.BigDecimal.class, null);
	
	/**
	 * 创建人ID , 类型: java.lang.String
	 */
	public static final String CREATE_BY="createBy";
	
	/**
	 * 创建人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> CREATE_BY_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,CREATE_BY, java.lang.String.class, "创建人ID", "创建人ID", java.lang.String.class, null);
	
	/**
	 * 创建时间 , 类型: java.util.Date
	 */
	public static final String CREATE_TIME="createTime";
	
	/**
	 * 创建时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.util.Date> CREATE_TIME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,CREATE_TIME, java.util.Date.class, "创建时间", "创建时间", java.util.Date.class, null);
	
	/**
	 * 删除人ID , 类型: java.lang.String
	 */
	public static final String DELETE_BY="deleteBy";
	
	/**
	 * 删除人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> DELETE_BY_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,DELETE_BY, java.lang.String.class, "删除人ID", "删除人ID", java.lang.String.class, null);
	
	/**
	 * 删除时间 , 类型: java.util.Date
	 */
	public static final String DELETE_TIME="deleteTime";
	
	/**
	 * 删除时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.util.Date> DELETE_TIME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,DELETE_TIME, java.util.Date.class, "删除时间", "删除时间", java.util.Date.class, null);
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	 */
	public static final String DELETED="deleted";
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.Integer> DELETED_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,DELETED, java.lang.Integer.class, "是否已删除", "是否已删除", java.lang.Integer.class, null);
	
	/**
	 * 收支凭证 , 类型: java.lang.String
	 */
	public static final String FILE_IDS="fileIds";
	
	/**
	 * 收支凭证 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> FILE_IDS_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,FILE_IDS, java.lang.String.class, "收支凭证", "收支凭证", java.lang.String.class, null);
	
	/**
	 * 主键 , 类型: java.lang.String
	 */
	public static final String ID="id";
	
	/**
	 * 主键 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> ID_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,ID, java.lang.String.class, "主键", "主键", java.lang.String.class, null);
	
	/**
	 * 收支名称 , 类型: java.lang.String
	 */
	public static final String NAME="name";
	
	/**
	 * 收支名称 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> NAME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,NAME, java.lang.String.class, "收支名称", "收支名称", java.lang.String.class, null);
	
	/**
	 * 备注 , 类型: java.lang.String
	 */
	public static final String NOTES="notes";
	
	/**
	 * 备注 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> NOTES_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,NOTES, java.lang.String.class, "备注", "备注", java.lang.String.class, null);
	
	/**
	 * 操作人员 , 类型: java.lang.String
	 */
	public static final String OPER_ID="operId";
	
	/**
	 * 操作人员 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> OPER_ID_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,OPER_ID, java.lang.String.class, "操作人员", "操作人员", java.lang.String.class, null);
	
	/**
	 * 操作时间 , 类型: java.util.Date
	 */
	public static final String OPER_TIME="operTime";
	
	/**
	 * 操作时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.util.Date> OPER_TIME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,OPER_TIME, java.util.Date.class, "操作时间", "操作时间", java.util.Date.class, null);
	
	/**
	 * 支付方式 , 类型: java.lang.String
	 */
	public static final String PAY_METHOD="payMethod";
	
	/**
	 * 支付方式 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> PAY_METHOD_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,PAY_METHOD, java.lang.String.class, "支付方式", "支付方式", java.lang.String.class, null);
	
	/**
	 * 收支时间 , 类型: java.util.Date
	 */
	public static final String RCD_TIME="rcdTime";
	
	/**
	 * 收支时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.util.Date> RCD_TIME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,RCD_TIME, java.util.Date.class, "收支时间", "收支时间", java.util.Date.class, null);
	
	/**
	 * 收支状态 , 类型: java.lang.String
	 */
	public static final String STATUS="status";
	
	/**
	 * 收支状态 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> STATUS_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,STATUS, java.lang.String.class, "收支状态", "收支状态", java.lang.String.class, null);
	
	/**
	 * 租户 , 类型: java.lang.String
	 */
	public static final String TENANT_ID="tenantId";
	
	/**
	 * 租户 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> TENANT_ID_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,TENANT_ID, java.lang.String.class, "租户", "租户", java.lang.String.class, null);
	
	/**
	 * 记账类型 , 类型: java.lang.String
	 */
	public static final String TYPE="type";
	
	/**
	 * 记账类型 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> TYPE_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,TYPE, java.lang.String.class, "记账类型", "记账类型", java.lang.String.class, null);
	
	/**
	 * 修改人ID , 类型: java.lang.String
	 */
	public static final String UPDATE_BY="updateBy";
	
	/**
	 * 修改人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.String> UPDATE_BY_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,UPDATE_BY, java.lang.String.class, "修改人ID", "修改人ID", java.lang.String.class, null);
	
	/**
	 * 修改时间 , 类型: java.util.Date
	 */
	public static final String UPDATE_TIME="updateTime";
	
	/**
	 * 修改时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.util.Date> UPDATE_TIME_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,UPDATE_TIME, java.util.Date.class, "修改时间", "修改时间", java.util.Date.class, null);
	
	/**
	 * 数据版本号 , 类型: java.lang.Integer
	 */
	public static final String VERSION="version";
	
	/**
	 * 数据版本号 , 类型: java.lang.Integer
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,java.lang.Integer> VERSION_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,VERSION, java.lang.Integer.class, "数据版本号", "数据版本号", java.lang.Integer.class, null);
	
	/**
	 * operUser , 类型: org.github.foxnic.web.domain.hrm.Employee
	 */
	public static final String OPER_USER="operUser";
	
	/**
	 * operUser , 类型: org.github.foxnic.web.domain.hrm.Employee
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,org.github.foxnic.web.domain.hrm.Employee> OPER_USER_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,OPER_USER, org.github.foxnic.web.domain.hrm.Employee.class, "operUser", "operUser", org.github.foxnic.web.domain.hrm.Employee.class, null);
	
	/**
	 * payMethodDict , 类型: org.github.foxnic.web.domain.system.DictItem
	 */
	public static final String PAY_METHOD_DICT="payMethodDict";
	
	/**
	 * payMethodDict , 类型: org.github.foxnic.web.domain.system.DictItem
	 */
	public static final BeanProperty<com.dt.platform.domain.oa.FinAccountingRecord,org.github.foxnic.web.domain.system.DictItem> PAY_METHOD_DICT_PROP = new BeanProperty(com.dt.platform.domain.oa.FinAccountingRecord.class ,PAY_METHOD_DICT, org.github.foxnic.web.domain.system.DictItem.class, "payMethodDict", "payMethodDict", org.github.foxnic.web.domain.system.DictItem.class, null);
	
	/**
	 * 全部属性清单
	 */
	public static final String[] $PROPS={ ACCOUNTING_CATEGORY , AMOUNT , CREATE_BY , CREATE_TIME , DELETE_BY , DELETE_TIME , DELETED , FILE_IDS , ID , NAME , NOTES , OPER_ID , OPER_TIME , PAY_METHOD , RCD_TIME , STATUS , TENANT_ID , TYPE , UPDATE_BY , UPDATE_TIME , VERSION , OPER_USER , PAY_METHOD_DICT };
	
	/**
	 * 代理类
	 */
	public static class $$proxy$$ extends com.dt.platform.domain.oa.FinAccountingRecord {

		private static final long serialVersionUID = 1L;

		
		/**
		 * 设置 账目分类
		 * @param accountingCategory 账目分类
		 * @return 当前对象
		*/
		public FinAccountingRecord setAccountingCategory(String accountingCategory) {
			super.change(ACCOUNTING_CATEGORY,super.getAccountingCategory(),accountingCategory);
			super.setAccountingCategory(accountingCategory);
			return this;
		}
		
		/**
		 * 设置 收支金额
		 * @param amount 收支金额
		 * @return 当前对象
		*/
		public FinAccountingRecord setAmount(BigDecimal amount) {
			super.change(AMOUNT,super.getAmount(),amount);
			super.setAmount(amount);
			return this;
		}
		
		/**
		 * 设置 创建人ID
		 * @param createBy 创建人ID
		 * @return 当前对象
		*/
		public FinAccountingRecord setCreateBy(String createBy) {
			super.change(CREATE_BY,super.getCreateBy(),createBy);
			super.setCreateBy(createBy);
			return this;
		}
		
		/**
		 * 设置 创建时间
		 * @param createTime 创建时间
		 * @return 当前对象
		*/
		public FinAccountingRecord setCreateTime(Date createTime) {
			super.change(CREATE_TIME,super.getCreateTime(),createTime);
			super.setCreateTime(createTime);
			return this;
		}
		
		/**
		 * 设置 删除人ID
		 * @param deleteBy 删除人ID
		 * @return 当前对象
		*/
		public FinAccountingRecord setDeleteBy(String deleteBy) {
			super.change(DELETE_BY,super.getDeleteBy(),deleteBy);
			super.setDeleteBy(deleteBy);
			return this;
		}
		
		/**
		 * 设置 删除时间
		 * @param deleteTime 删除时间
		 * @return 当前对象
		*/
		public FinAccountingRecord setDeleteTime(Date deleteTime) {
			super.change(DELETE_TIME,super.getDeleteTime(),deleteTime);
			super.setDeleteTime(deleteTime);
			return this;
		}
		
		/**
		 * 设置 是否已删除
		 * @param deleted 是否已删除
		 * @return 当前对象
		*/
		public FinAccountingRecord setDeleted(Integer deleted) {
			super.change(DELETED,super.getDeleted(),deleted);
			super.setDeleted(deleted);
			return this;
		}
		
		/**
		 * 设置 收支凭证
		 * @param fileIds 收支凭证
		 * @return 当前对象
		*/
		public FinAccountingRecord setFileIds(String fileIds) {
			super.change(FILE_IDS,super.getFileIds(),fileIds);
			super.setFileIds(fileIds);
			return this;
		}
		
		/**
		 * 设置 主键
		 * @param id 主键
		 * @return 当前对象
		*/
		public FinAccountingRecord setId(String id) {
			super.change(ID,super.getId(),id);
			super.setId(id);
			return this;
		}
		
		/**
		 * 设置 收支名称
		 * @param name 收支名称
		 * @return 当前对象
		*/
		public FinAccountingRecord setName(String name) {
			super.change(NAME,super.getName(),name);
			super.setName(name);
			return this;
		}
		
		/**
		 * 设置 备注
		 * @param notes 备注
		 * @return 当前对象
		*/
		public FinAccountingRecord setNotes(String notes) {
			super.change(NOTES,super.getNotes(),notes);
			super.setNotes(notes);
			return this;
		}
		
		/**
		 * 设置 操作人员
		 * @param operId 操作人员
		 * @return 当前对象
		*/
		public FinAccountingRecord setOperId(String operId) {
			super.change(OPER_ID,super.getOperId(),operId);
			super.setOperId(operId);
			return this;
		}
		
		/**
		 * 设置 操作时间
		 * @param operTime 操作时间
		 * @return 当前对象
		*/
		public FinAccountingRecord setOperTime(Date operTime) {
			super.change(OPER_TIME,super.getOperTime(),operTime);
			super.setOperTime(operTime);
			return this;
		}
		
		/**
		 * 设置 支付方式
		 * @param payMethod 支付方式
		 * @return 当前对象
		*/
		public FinAccountingRecord setPayMethod(String payMethod) {
			super.change(PAY_METHOD,super.getPayMethod(),payMethod);
			super.setPayMethod(payMethod);
			return this;
		}
		
		/**
		 * 设置 收支时间
		 * @param rcdTime 收支时间
		 * @return 当前对象
		*/
		public FinAccountingRecord setRcdTime(Date rcdTime) {
			super.change(RCD_TIME,super.getRcdTime(),rcdTime);
			super.setRcdTime(rcdTime);
			return this;
		}
		
		/**
		 * 设置 收支状态
		 * @param status 收支状态
		 * @return 当前对象
		*/
		public FinAccountingRecord setStatus(String status) {
			super.change(STATUS,super.getStatus(),status);
			super.setStatus(status);
			return this;
		}
		
		/**
		 * 设置 租户
		 * @param tenantId 租户
		 * @return 当前对象
		*/
		public FinAccountingRecord setTenantId(String tenantId) {
			super.change(TENANT_ID,super.getTenantId(),tenantId);
			super.setTenantId(tenantId);
			return this;
		}
		
		/**
		 * 设置 记账类型
		 * @param type 记账类型
		 * @return 当前对象
		*/
		public FinAccountingRecord setType(String type) {
			super.change(TYPE,super.getType(),type);
			super.setType(type);
			return this;
		}
		
		/**
		 * 设置 修改人ID
		 * @param updateBy 修改人ID
		 * @return 当前对象
		*/
		public FinAccountingRecord setUpdateBy(String updateBy) {
			super.change(UPDATE_BY,super.getUpdateBy(),updateBy);
			super.setUpdateBy(updateBy);
			return this;
		}
		
		/**
		 * 设置 修改时间
		 * @param updateTime 修改时间
		 * @return 当前对象
		*/
		public FinAccountingRecord setUpdateTime(Date updateTime) {
			super.change(UPDATE_TIME,super.getUpdateTime(),updateTime);
			super.setUpdateTime(updateTime);
			return this;
		}
		
		/**
		 * 设置 数据版本号
		 * @param version 数据版本号
		 * @return 当前对象
		*/
		public FinAccountingRecord setVersion(Integer version) {
			super.change(VERSION,super.getVersion(),version);
			super.setVersion(version);
			return this;
		}
		
		/**
		 * 设置 operUser
		 * @param operUser operUser
		 * @return 当前对象
		*/
		public FinAccountingRecord setOperUser(Employee operUser) {
			super.change(OPER_USER,super.getOperUser(),operUser);
			super.setOperUser(operUser);
			return this;
		}
		
		/**
		 * 设置 payMethodDict
		 * @param payMethodDict payMethodDict
		 * @return 当前对象
		*/
		public FinAccountingRecord setPayMethodDict(DictItem payMethodDict) {
			super.change(PAY_METHOD_DICT,super.getPayMethodDict(),payMethodDict);
			super.setPayMethodDict(payMethodDict);
			return this;
		}

		/**
		 * 克隆当前对象
		*/
		@Transient
		public FinAccountingRecord clone() {
			return duplicate(true);
		}

		/**
		 * 复制当前对象
		 * @param all 是否复制全部属性，当 false 时，仅复制来自数据表的属性
		*/
		@Transient
		public FinAccountingRecord duplicate(boolean all) {
			$$proxy$$ inst=new $$proxy$$();
			inst.setAmount(this.getAmount());
			inst.setNotes(this.getNotes());
			inst.setOperId(this.getOperId());
			inst.setUpdateTime(this.getUpdateTime());
			inst.setType(this.getType());
			inst.setVersion(this.getVersion());
			inst.setCreateBy(this.getCreateBy());
			inst.setDeleted(this.getDeleted());
			inst.setCreateTime(this.getCreateTime());
			inst.setDeleteTime(this.getDeleteTime());
			inst.setFileIds(this.getFileIds());
			inst.setUpdateBy(this.getUpdateBy());
			inst.setPayMethod(this.getPayMethod());
			inst.setName(this.getName());
			inst.setTenantId(this.getTenantId());
			inst.setDeleteBy(this.getDeleteBy());
			inst.setId(this.getId());
			inst.setAccountingCategory(this.getAccountingCategory());
			inst.setOperTime(this.getOperTime());
			inst.setRcdTime(this.getRcdTime());
			inst.setStatus(this.getStatus());
			if(all) {
				inst.setPayMethodDict(this.getPayMethodDict());
				inst.setOperUser(this.getOperUser());
			}
			inst.clearModifies();
			return inst;
		}

	}
}